home *** CD-ROM | disk | FTP | other *** search
/ Oh!X 2001 Spring / Oh!X 2001 Spring Special CD-ROM (Japan).7z / Oh!X 2001 Spring Special CD-ROM (Japan) (Track 1).bin / GALAXY / ohx5-1 / d3dxbitmap.cpp < prev    next >
C/C++ Source or Header  |  2001-01-10  |  3KB  |  110 lines

  1. /*
  2.     Oh!X5号
  3.     GalaxyKnights
  4.     DX7→DX8の犠牲になりましたので、ほぼ未使用。
  5.     bitmapライブラリ手続き部分
  6. */
  7. #define        BEXT
  8. #include    "stdafx.h"
  9. #include    "ohx5_1.h"
  10. HBITMAP    hbm0,hbm1;
  11. long    timer_low;
  12. long    unloaded;
  13.  
  14. BITMAPDATA    datalist[]={
  15.     "",            0,    0,    0,    0,    0,    0
  16. };
  17. LOOKS        bitmaps[BITMAPMAX];
  18. //    処理用サーフェイス
  19. struct    IDirect3DSurface8*    lpFrontBuffer;            //    フロントバッファ用サーフェイス
  20. struct    IDirect3DSurface8*    lpBackBuffer;            //    バックバッファ用サーフェイス
  21. long                dwTransType;
  22.  
  23. void    title_object_clear(void)
  24. {
  25.     if( hbm0!=NULL ) DeleteObject( hbm0 );
  26.     if( hbm1!=NULL ) DeleteObject( hbm1 );
  27.     hbm0 = hbm1 = NULL;
  28.     unloaded = 1;
  29. }
  30.  
  31.  
  32. /*    ゲームの初期化    */
  33. bool init_bitmaps( void )
  34. {
  35. //    D3DCAPS8        d3dcaps;        //    
  36. //    HRESULT            d3drval;        //    DirectDrawからのリザルトステータス
  37. D3DSURFACE_DESC    d3dsd;            //    テンポラリサーフェイス
  38.  
  39. //    int                ct;
  40.  
  41. //    該当ハードのカラーのケーパビリティをチェック
  42. //    dwTransType には、BltFastで使う透明フィルタのコマンドが入る
  43. //    dwTransType = DDBLTFAST_SRCCOLORKEY;
  44. //    d3dcaps.dwSize = sizeof( d3dcaps );
  45.       
  46. //    スプライト用描画オブジェクトエリアを確保、リソースのコピーはRestoreSurfacesルーチンで行う
  47.     memset( &d3dsd, 0, sizeof( d3dsd ) );
  48.  
  49. //    bitmap リソースの一括確保
  50. /*
  51.     ct = 0;
  52.     while( datalist[ct].resource !="" ){
  53.         ddsd.dwWidth = datalist[ct].sx;
  54.         ddsd.dwHeight= datalist[ct].sy;
  55.         bitmaps[ct].surf = NULL;
  56.         bitmaps[ct].palet= NULL;
  57.         bitmaps[ct].cols = datalist[ct].count;
  58.         bitmaps[ct].sizex= datalist[ct].cx;
  59.         bitmaps[ct].sizey= datalist[ct].cy;
  60.         ddrval = lpDD->CreateSurface( &ddsd, &bitmaps[ct].surf, NULL );
  61.         if( ddrval != D3D_OK ){ return false; }
  62.         ct++;
  63.     }
  64.     unloaded = 1;
  65.     timer_low = 0;
  66.     if( !RestoreSurfaces() ) return false;
  67. */    
  68.     return true;
  69. }
  70.  
  71. bool    release_bitmaps()
  72. {
  73. int    ct = 0;
  74.     title_object_clear();
  75.     while( datalist[ct].resource != "" ){
  76.         xRelease( bitmaps[ct].surf );
  77.         ct++;
  78.     }
  79.     return true;
  80. }
  81.  
  82. /*
  83.     タイトル画面の表示
  84. */
  85.  
  86. bool    display_bitmap( char * filename )
  87. {
  88. //    HRESULT    hr;
  89. //    HRESULT     ddrval;
  90. /*
  91.     timer_low++;
  92.     if( unloaded ){
  93.         hbm0 = (HBITMAP)LoadImage( GetModuleHandle( NULL ), filename, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION );
  94.         if ( NULL == hbm0 ) return false;
  95.         unloaded = 0;
  96.     }
  97. //    ddrval = DDCopyBitmap( lpBackBuffer, hbm0, 0, 0, 0, 0 );
  98.     if( timer_low>60*3 ){
  99.         title_object_clear();
  100.         timer_low = 0;
  101.         system_state = ID_3D_MOVE;
  102.         unloaded = 1;
  103.     }
  104.     // フレーム更新、フリップだろうがブリットだろうがこれでOK
  105. //    hr = lpD3DX->UpdateFrame( 0 );
  106. //    if (hr == DDERR_SURFACELOST || hr == DDERR_SURFACEBUSY) return false;
  107. */
  108.     return true;
  109. }
  110.